class Person {
    firstName: string = 'A'
    lastName: string = 'B'
    // getter 看上去是一个方法，真实身份是类的属性，当读取该属性的时候，函数会被调用。函数的返回值，就是该属性的值
    get fullName() {
        console.log('getter 调用了')
        return this.firstName + '-' + this.lastName
    }
    // setter调用时机：给该属性赋值的时候会被调用，并且参数是 赋值语法 = 右边的值
    set fullName(value) {
        console.log('value: ', value)
        const names = value.split('-')
        this.firstName = names[0]
        this.lastName = names[1]
    }
}

const p1 = new Person()
console.log(p1.fullName)

p1.fullName = 'C-D'